﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics.CodeAnalysis;

namespace Onyx.ComponentModel
{
    /// <summary>
    /// An <see cref="IServiceProvider"/> that can report the service types it provides.
    /// </summary>
    public interface IServiceLocator : IServiceProvider
    {
        /// <summary>
        /// Gets a list of the service types available from this instance.
        /// </summary>
        /// <returns>
        /// a list of the service types available from this instance.
        /// </returns>
        [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
        IEnumerable<Type> GetServiceTypes();
    }
}
